package arm_search_3.data;

import java.util.ArrayList;

/**
 * Document adalah kelas abstrak bagi dokumen dalam ARM_Search
 * @author Ali Suliman Abubaker Naser
 */
public abstract class Document {

    /**
     * ID dari dokumen
     */
    private String ID;
    /**
     * alamat dari dokumen
     */
    private String address;

    /**
     * membandingkan dua buah dokumen apakah sama dengan membandingkan ID dari
     * kedua dokumen
     * @param object objek document lain
     * @return is same document
     */
    @Override
    public boolean equals(Object object) {
        Document objDoc = (Document) object;
        return this.getID().equals(objDoc.getID());
    }

    /**
     * mengembalikan ID dari dokumen
     * @return ID dari dokumen
     */
    public String getID() {
        return this.ID;
    }

    /**
     * mengisikan ID dari dokumen
     * @param ID ID dokumen
     */
    public void setID(String ID) {
        this.ID = ID;
    }

    /**
     * mengisikan alamat dari dokumen
     * @param address dari dokumen
     */
    public void setAddress(String address) {
        this.address = address;
    }

    /**
     * mengembalikan address dari dokumen
     * @return address dari dokumen
     */
    public String getAddress() {
        return this.address;
    }

    /**
     * mengembalikan teks isi dokumen dalam array of string
     * @return array of string isi dokumen
     */
    public abstract ArrayList<String> extractContent();
}
